# -*- coding: utf-8 -*-
class IVisible(object):
	
	"""
	Interfaz que es implementada por todos los objetos que pueden cambiar su visibilidad en tiempo de ejecucion del problema.
	@since: 4/14/2011
	@version: 1.0
	"""
	
	__visible=True
	""" Bandera para saber si un objeto es visible o no """
	
	__showInX=0
	""" Offset sobre X con respecto a su contenedor en el cual aparecera el objeto """
	
	__showInY=0
	""" Offset sobre Y con respecto a su contenedor en el cual aparecera el objeto """
	
	def __init__(self):
		"""
		Constructor
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		"""
		self.__visible=True

	def esVisible(self):
		"""
		Metodo que permite saber si el objeto es Visible o no. True = Visible, False = Invisible.
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		"""
		return self.__visible

	def ocultar(self):
		"""
		Forza al IVisible actual a ser invisible.
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		"""
		self.__visible=False
		
	def mostrar(self):
		"""
		Forza al IVisible actual a ser visible.
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		"""
		self.__visible=True
		
	def setShowInX(self, x):
		"""
		Define el offset de visibilidad sobre X.
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		
		@type	x: int
		@param	x: offset sobre X
		"""
		self.__showInX=x
	
	def setShowInY(self, y):
		"""
		Define el offset de visibilidad sobre Y.
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		
		@type	y: int
		@param	y: offset sobre Y
		"""
		self.__showInY=y
		
	def getShowInX(self):
		"""
		Devuelve el offset de visibilidad sobre X.
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		"""
		return self.__showInX
	
	def getShowInY(self):
		"""
		Devuelve el offset de visibilidad sobre Y.
		@type	self: IVisible
		@param	self: referencia al IVisible actual
		"""
		return self.__showInY